package msgdef

import (
	"fmt"
	"src/zeus/bytestream"
)

// SocialMsgChat 聊天消息
type SocialMsgChat struct {
	SrcName    string
	Channel    uint8
	MsgContent string
}

func (msg *SocialMsgChat) String() string {
	return fmt.Sprintf("%+v", *msg)
}

// MarshalTo 序列化
func (msg *SocialMsgChat) MarshalTo(data []byte) (n int, err error) {
	bw := bytestream.NewByteStream(data)
	return msg.Size(), bw.Marshal(msg)
}

// Unmarshal 反序列化
func (msg *SocialMsgChat) Unmarshal(data []byte) error {
	br := bytestream.NewByteStream(data)
	return br.Unmarshal(msg)
}

// Size 获取长度
func (msg *SocialMsgChat) Size() (n int) {
	return bytestream.CalcSize(msg)
}

// Name 获取名字
func (msg *SocialMsgChat) Name() string {
	return "SocialMsgChat"
}

/////////////////////////////////////////////////////////////////////
